﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Playbook.Core.ViewModel
{
    /// <summary>
    /// Represents a singular metadata.
    /// </summary>
    public sealed class MetadataViewModel : ViewModelBase
    {
        private Guid _id;
        private string _key;
        private string _value;
        private MetadataTypes _type;
        private bool _isActive;

        public MetadataViewModel() : base() { }

        /// <summary>
        /// The metadata identifier.
        /// </summary>
        public Guid ID { get { return _id; } set { _id = value; base.RaisePropertyChanged("ID"); } }

        /// <summary>
        /// The key of this metadata.
        /// </summary>
        public string Key { get { return _key; } set { _key = value; base.RaisePropertyChanged("Key"); } }
        
        /// <summary>
        /// The value of this metadata.
        /// </summary>
        public string Value { get { return _value; } set { _value = value; base.RaisePropertyChanged("Value"); } }

        /// <summary>
        /// The type of this metadata.
        /// </summary>
        public MetadataTypes Type { get { return _type; } set { _type = value; base.RaisePropertyChanged("Type"); } }

        /// <summary>
        /// Indicates the active status of this metadata.
        /// </summary>
        public bool IsActive { get { return _isActive; } set { _isActive = value; base.RaisePropertyChanged("IsActive"); } }

    }
}
